package com.vviton.zyhj.admin.controller;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;

import com.vviton.zyhj.admin.content.CommonConstants;
import com.vviton.zyhj.admin.service.ZyddglService;
import com.vviton.zyhj.common.utils.ResultJson;
import com.vviton.zyhj.common.utils.page.Page;
import com.vviton.zyhj.common.view.ParamDdcx;
import com.vviton.zyhj.common.view.ParamDdfh;
import com.vviton.zyhj.common.view.ViewDdcx;
import com.vviton.zyhj.common.view.ViewDhwlxx;
import com.vviton.zyhj.common.view.ViewWlgzxx;
import com.wdcloud.framework.core.log.annotation.MonitorLog;

/**
 * ClassName: ZyddglController <br/>
 * Function: 自营订单管理Controller. <br/>
 * Date: 2016年11月15日 上午9:27:27 <br/>
 *
 * @author Dengshiyu
 * @version 1.0
 * @since JDK 1.7
 */
@Controller
@RequestMapping("zyddgl")
public class ZyddglController {

    /** 自营订单管理Service */
    @Autowired
    private ZyddglService zyddglService;

    /**
     * getDdcxPagination,根据各种条件查询订单. <br/>
     * Author: Dengshiyu <br/>
     * Create Date: 2016年11月16日 <br/>
     * ===============================================================<br/>
     * Modifier: Dengshiyu <br/>
     * Modify Date: 2016年11月16日 <br/>
     * Modify Description: <br/>
     * ===============================================================<br/>
     * 
     * @param paramDdcx 订单查询参数
     * @param req HttpServletRequest
     * @return Page
     * @since JDK 1.7
     */
    @RequestMapping("getDdcxPagination")
    @ResponseBody
    @MonitorLog(text = "根据各种条件查询订单", containRequest = true)
    public Page getDdcxPagination(@RequestBody ParamDdcx paramDdcx, HttpServletRequest req) {
        String zh = CommonConstants.getYwryzh(req);
        return zyddglService.getDdcxPagination(paramDdcx, zh);
    }

    /**
     * ddfh,订单发货. <br/>
     * Author: Dengshiyu <br/>
     * Create Date: 2016年11月18日 <br/>
     * ===============================================================<br/>
     * Modifier: Dengshiyu <br/>
     * Modify Date: 2016年11月18日 <br/>
     * Modify Description: <br/>
     * ===============================================================<br/>
     * 
     * @param paramDdfh 订单发货参数
     * @param req HttpServletRequest
     * @return 操作结果
     * @since JDK 1.7
     */
    @RequestMapping("ddfh")
    @ResponseBody
    @MonitorLog(text = "订单发货", containRequest = true)
    public ResultJson ddfh(@RequestBody ParamDdfh paramDdfh, HttpServletRequest req) {
        String zh = CommonConstants.getYwryzh(req);
        return zyddglService.ddfh(paramDdfh, zh);
    }

    /**
     * getDdxxById,根据Id获取订单信息. <br/>
     * Author: Dengshiyu <br/>
     * Create Date: 2016年11月21日 <br/>
     * ===============================================================<br/>
     * Modifier: Dengshiyu <br/>
     * Modify Date: 2016年11月21日 <br/>
     * Modify Description: <br/>
     * ===============================================================<br/>
     * 
     * @param id 订单id
     * @param ywy 业务域
     * @return 订单查询结果
     * @since JDK 1.7
     */
    @RequestMapping("getDdxxById")
    @ResponseBody
    @MonitorLog(text = "根据Id获取订单信息", containRequest = true)
    public ViewDdcx getDdxxById(@RequestParam String id, @RequestParam String ywy) {
        return zyddglService.getDdxxById(id, ywy);
    }

    /**
     * pldcDdxx,批量导出订单信息. <br/>
     * Author: Dengshiyu <br/>
     * Create Date: 2016年11月24日 <br/>
     * ===============================================================<br/>
     * Modifier: Dengshiyu <br/>
     * Modify Date: 2016年11月24日 <br/>
     * Modify Description: <br/>
     * ===============================================================<br/>
     * 
     * @param ddids 订单id
     * @param ywy 业务域
     * @param res HttpServletResponse
     * @return 操作结果
     * @since JDK 1.7
     */
    @RequestMapping("pldcDdxx")
    @ResponseBody
    @MonitorLog(text = "批量导出订单信息", containRequest = true)
    public ResultJson pldcDdxx(@RequestParam String ddids, @RequestParam String ywy, HttpServletResponse res) {
        return zyddglService.pldcDdxx(ddids, ywy, res);
    }

    /**
     * getDdwlxx,根据订单Id获取订单物流信息. <br/>
     * Author: Dengshiyu <br/>
     * Create Date: 2016年12月23日 <br/>
     * ===============================================================<br/>
     * Modifier: Dengshiyu <br/>
     * Modify Date: 2016年12月23日 <br/>
     * Modify Description: <br/>
     * ===============================================================<br/>
     * 
     * @param ddid 订单id
     * @return 订单物流信息
     * @since JDK 1.7
     */
    @RequestMapping("getDdwlxx")
    @ResponseBody
    @MonitorLog(text = "根据订单Id获取订单物流信息", containRequest = true)
    public ViewDhwlxx getDdwlxx(@RequestParam String ddid) {
        return zyddglService.getDdwlxx(ddid);
    }

    /**
     * getWlgzxx,根据订单Id查询物流跟踪信息. <br/>
     * Author: Dengshiyu <br/>
     * Create Date: 2016年12月23日 <br/>
     * ===============================================================<br/>
     * Modifier: Dengshiyu <br/>
     * Modify Date: 2016年12月23日 <br/>
     * Modify Description: <br/>
     * ===============================================================<br/>
     * 
     * @param ddid 订单编号
     * @return 物流跟踪信息
     * @since JDK 1.7
     */
    @RequestMapping("getWlgzxx")
    @ResponseBody
    @MonitorLog(text = "根据订单Id查询物流跟踪信息", containRequest = true)
    public ViewWlgzxx getWlgzxx(@RequestParam String ddid) {
        return zyddglService.getWlgzxx(ddid);
    }

}
